Skip to content

Conversation

@llllliii88iiilllll
Copy link
Collaborator

@llllliii88iiilllll llllliii88iiilllll commented Nov 9, 2024

요구사항

  • Github에 PR(Pull Request)을 만들어서 미션을 제출합니다.
  • 피그마 디자인에 맞게 페이지를 만들어 주세요.
  • React와 같은 UI 라이브러리를 사용하지 않고 진행합니다.

기본

로그인

  • 이메일 input에서 focus out 할 때, 값이 없을 경우 input에 빨강색 테두리와 아래에 “이메일을 입력해주세요.” 빨강색 에러 메세지를 보입니다.
  • 이메일 input에서 focus out 할 때, 이메일 형식에 맞지 않는 경우 input에 빨강색 테두리와 아래에 “잘못된 이메일 형식입니다” 빨강색 에러 메세지를 보입니다.
  • 비밀번호 input에서 focus out 할 때, 값이 없을 경우 아래에 “비밀번호를 입력해주세요.” 에러 메세지를 보입니다
  • 비밀번호 input에서 focus out 할 때, 값이 8자 미만일 경우 아래에 “비밀번호를 8자 이상 입력해주세요.” 에러 메세지를 보입니다.
  • input 에 빈 값이 있거나 에러 메세지가 있으면 ‘로그인’ 버튼은 비활성화 됩니다.
  • input 에 유효한 값을 입력하면 ‘로그인' 버튼이 활성화 됩니다.
  • 활성화된 ‘로그인’ 버튼을 누르면 “/items” 로 이동합니다

회원가입

  • 이메일 input에서 focus out 할 때, 값이 없을 경우 input에 빨강색 테두리와 아래에 “이메일을 입력해주세요.” 빨강색 에러 메세지를 보입니다.
  • 이메일 input에서 focus out 할 때, 이메일 형식에 맞지 않는 경우 input에 빨강색 테두리와 아래에 “잘못된 이메일 형식입니다” 빨강색 에러 메세지를 보입니다.
  • 닉네임 input에서 focus out 할 때, 값이 없을 경우 input에 빨강색 테두리와 아래에 “닉네임을 입력해주세요.” 빨강색 에러 메세지를 보입니다.
  • 비밀번호 input에서 focus out 할 때, 값이 없을 경우 아래에 “비밀번호를 입력해주세요.” 에러 메세지를 보입니다
  • 비밀번호 input에서 focus out 할 때, 값이 8자 미만일 경우 아래에 “비밀번호를 8자 이상 입력해주세요.” 에러 메세지를 보입니다.
  • 비밀번호 input과 비밀번호 확인 input의 값이 다른 경우, 비밀번호 확인 input 아래에 “비밀번호가 일치하지 않습니다..” 에러 메세지를 보입니다.
  • input 에 빈 값이 있거나 에러 메세지가 있으면 ‘회원가입’ 버튼은 비활성화 됩니다.
  • input 에 유효한 값을 입력하면 ‘회원가입' 버튼이 활성화 됩니다.
  • 활성화된 ‘회원가입’ 버튼을 누르면 “/signup” 로 이동합니다

심화

  • 눈 모양 아이콘 클릭시 비밀번호의 문자열이 보이기도 하고, 가려지기도 합니다.
  • 비밀번호의 문자열이 가려질 때는 눈 모양 아이콘에는 사선이 그어져있고, 비밀번호의 문자열이 보일 때는 사선이 없는 눈 모양 아이콘이 보이도록 합니다.

주요 변경사항

  • onclik 속성을 넣었던 태그들 > button 태그로 변경

스크린샷

netlify 배포 URL

https://stunning-madeleine-d08fba.netlify.app/

멘토에게

  • 뭔가 공통 부분들을 정리하고, 객체를 이용해서 태그들을 정리해서 가져오고 이렇게 하고 싶은데 일단 거기까지는 못했고, 우선 이렇게라도 기능을 구현해 보았습니다. js파일을 각각 나누고 싶지 않았는데 제가 보기 어지러워서 나눴습니다 ㅜ
  • 요구사항 중 활성화된 버튼을 누르면 다른 페이지로의 이동에서, form태그 내에 button type = "submit" 으로 했더니 페이지 이동이 안되서 type = "button" 으로 넣었는데 type="submit"일 때 페이지 이동은 어떻게 하는 것인지요....ㅜ
  • button type="submit" 이 없다면 form은 제출이 안되는 건가요? 아니면 button type="button"이라도 또 다른 이벤트를 걸어 submit 시켜야 하는 건가요?

@llllliii88iiilllll llllliii88iiilllll added the 순한맛🐑 마음이 많이 여립니다.. label Nov 9, 2024
@withyj-codeit withyj-codeit changed the base branch from main to Basic-김혜선 November 13, 2024 01:05
Copy link
Contributor

@withyj-codeit withyj-codeit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

스프린트 미션 하느라 수고하셨어요👏🏻

image
Pull Request 만들 때, upstream/main이 아닌 upstream/Basic-김혜선 으로 만드셔야 하는 거 기억해 주세요.

뭔가 공통 부분들을 정리하고, 객체를 이용해서 태그들을 정리해서 가져오고 이렇게 하고 싶은데 일단 거기까지는 못했고, 우선 이렇게라도 기능을 구현해 보았습니다. js파일을 각각 나누고 싶지 않았는데 제가 보기 어지러워서 나눴습니다 ㅜ

시간이 빡빡할 때, 기능 먼저 구현하는 것 좋아요. 현재 혜선님 스프린트 미션 진도가 빠르셔서 여유되면, 해보려고 했던 작업 해보시면 좋을 것 같아요. login, signup에서 중복된 기능들은 따로 분리도 해보시면 좋은 경험이 될 것 같아요.

요구사항 중 활성화된 버튼을 누르면 다른 페이지로의 이동에서, form태그 내에 button type = "submit" 으로 했더니 페이지 이동이 안되서 type = "button" 으로 넣었는데 type="submit"일 때 페이지 이동은 어떻게 하는 것인지요....ㅜ

form에 action 속성 또는 button에 formaction으로 url 이동할 수 있고,
submit 이벤트 핸들링에서 preventDefault()로 브라우저 기본동작을 막고, 로그인 로직 처리하고 페이지 이동하셔도 돼요.

button type="submit" 이 없다면 form은 제출이 안되는 건가요? 아니면 button type="button"이라도 또 다른 이벤트를 걸어 submit 시켜야 하는 건가요?

submit이 아닌 type="button" 이라도 onclick에 제출 관련 로직을 넣으면 제출가능해요.
브라우저에 기본동작을 활용해 제출하지 않는 경우도 많지만,
이 경우 type="submit"은 유지하고, preventDefault()로 기본 제출 동작을 막아서 사용하기도 해요.

.error-txt {
padding-left: 16px;
font-size: 14px;
font-weight: var(--font-weight-semibold);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필요하다고 생각하는 값 css 변수로 만들어 관리하는 것 좋아요~👍

};

// email validChk
function emailValidChk(email) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

validateEmail 같은 함수 이름이 좋을 것 같아요.

@@ -0,0 +1,118 @@
//errMsg
const errMsg = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

상수의 경우 ERR_MSG로 표현해주면 좋아요.


// submit-btn disable, able
const submitBtn = document.querySelector('.submit-btn');
function btnAble() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

동사로 시작하는 함수 이름이 좋아요.

@withyj-codeit withyj-codeit merged commit b6ad8ec into codeit-bootcamp-frontend:Basic-김혜선 Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

순한맛🐑 마음이 많이 여립니다..

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants